T1: per-chip canary sets — skip irrelevant paths on 1T1R / 8814#73
Merged
Conversation
Before: `DEVOURER_DUMP_CANARY` emitted one fixed register list for every Jaguar chip and `canary_kernel_dump.sh` mirrored that list. Two problems: - 8821AU is 1T1R: path-B BB-AGC mirror (`0xe20-0xe40`) and RF[B] reads come back as BB-init defaults or sentinel zeros. Including them in the dump cluttered the diff with ~16 always-divergent noise rows (16 lines on 8821, of which 12 were path-B BB regs and 6 were RF[B] sentinels). - 8814AU additions (PR #72) bolted path-C/D BB regs onto the end as a conditional block instead of integrating them into a proper chip-aware schema. This PR refactors into per-path register groups (`bb_anchors`, `bb_pathA`, `bb_pathB`, `bb_pathC`, `bb_pathD`, `mac_canary`, `rf_canary`) with chip-dependent path masks: - `CHIP_8821`: path-A only — both BB path-B mirror and RF[B] skipped. - `CHIP_8812`: paths A + B (unchanged from prior behaviour). - `CHIP_8814A`: paths A + B + C + D BB-table; RF still A + B only (paths C/D are HW write-only). Per-chip line counts on a clean fresh capture at ch6: - 8821AU: 52 lines (was 68; -16 sentinel/no-op rows) - 8812AU: 68 lines (unchanged) - 8814AU: 90+ lines (full path-A/B/C/D coverage) `tools/canary_kernel_dump.sh` accepts `8812` / `8821` / `8814` for the chip arg and emits the matching path subset so kernel + devourer dumps still diff line-by-line. No functional behaviour change — purely diagnostic output shape. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Refactors the canary oracle from one fixed register list shared by all chips into per-path register groups with chip-dependent path masks.
Problem
0xe20-0xe40) and RF[B] reads come back as BB-init defaults or sentinel zeros. Including them in the dump cluttered the diff with always-divergent noise rows.Refactor
Register groups:
bb_anchors,bb_pathA,bb_pathB,bb_pathC,bb_pathD,mac_canary,rf_canary.Per-chip path masks:
CHIP_8821: path-A only — both BB path-B mirror and RF[B] skipped.CHIP_8812: paths A + B (unchanged from prior behaviour).CHIP_8814A: paths A + B + C + D BB-table; RF still A + B only (paths C/D are HW write-only).tools/canary_kernel_dump.shaccepts8812/8821/8814for the chip arg and emits the matching path subset so kernel + devourer dumps still diff line-by-line.Per-chip line counts (clean ch6 capture)
Test plan
RF[B]lines orBB 0xe**lines.🤖 Generated with Claude Code